MAM78 Posté(e) le 22 janvier 2019 Signaler Posté(e) le 22 janvier 2019 (modifié) GEA - Bibliothèque de fonction GEA additionnelles (conditions / actions) Préambule : A l'occasion de mes échanges avec @Steven au sujet des fonctions GEA et notamment celles qui ne sont pas forcement destinées à y être incluses dans la version officielle de GEA (notamment du fait qu'elles ne serait pas forcement utiles au plus grand nombre), il nous ai paru intéressant de référencer l'ensemble des fonctions additionnelles que chacun développe et les référencer sous la forme d'une bibliothèque dans laquelle chacun pourrait venir les récupérer et les intégrer dans son GEA. Le Projet : Nous avons tous des idées/besoins différents et GEA permet d'ajouter vos propres conditions/actions dans GEA. Référencer l'ensemble des fonctions que chacun développe de son côté et les référencer ici sous la forme d'une bibliothèque. Attention : L'idée est de référencer des conditions/actions qui ne sont pas déjà réalisables au travers des fonctions disponibles sous GEA. Les fonctions conditions/actions que vous créez pour une simplification d'écriture ou de lecture n'ont pas lieu d'être référencer ici. Mais rien n'empêche évidement que vous les présentiez dans vos messages, mais elles ne seront pas intégrées dans la bibliothèque. Comment développer une nouvelle fonction (option) : @Steven avait décrit comment développer une fonction (Option) GEA. Vous trouverez les explications ici : Pour rappel ces fonctions doivent être positionnée dans la partie : function config() de GEA. Comment soumettre une nouvelle fonction (option) : C'est simple vous créez un post dans ce sujet dans lequel vous souhaitez vos créations. Pour chaque proposition, il convient : d'en faire une description fonctionnelle de fournir le code de décrire les paramètres de la fonction : donner un ou plusieurs exemples d'utilisation d'indiquer avec quelle version de GEA est est compatible Les propositions seront référencées au fil de l'eau dans le deuxième post ci-dessous. Et peut-être qu'un jour elles seront intégrées dans une version officielle de GEA ` Historique des contributions : LabelRegEx @MAM78 du 22/01/2019 TempInt, TempExt,TempIntTTS, TempExtTTS @pepite du 232/01/2019 Modifié le 23 janvier 2019 par MAM78 2 1
MAM78 Posté(e) le 22 janvier 2019 Auteur Signaler Posté(e) le 22 janvier 2019 (modifié) Bibliothèque des fonctions additionnelles pour GEA Nom : LabelRegEx Auteur : @MAM78 Description fonctionnelle : Permet de filtrer les caractères contenue dans un label d'un VD pour en conserver que les caractères utiles et les exploiter. Code : GEA.options.labelregex = {name="LabelRegEx", math=true, optimize = true, depends = {"label"}, control =function(id, property, RegEx, condition) if condition == nil or RegEx == nill then return false, "Check option StringToAlpha condition or ReGex" else return true end end, getValue=function(id, property, RegEx, condition, case) local newvalue = "" for word in string.gmatch(GEA.options.label.getValue(id, property), RegEx) do newvalue = newvalue..word end if case ~= nil then if string.upper(case) == "UPPERCASE" then newvalue = string.upper(newvalue) elseif string.upper(case) == "LOWERCASE" then newvalue = string.lower(newvalue) end end return condition==newvalue end, } Description des paramètres de la fonction : value = données source, RegEx = chaine de caractères de filtrage, case = peut prendre la valeur UPPERCASE ou LOWERCASE afin de mettre en majuscule ou minuscule le résultat après filtrage. Exemples d'utilisations : GEA.add({{"LabelRegEx", id["VD_HomeMode_Manager"], "lblXXX", "[a-zA-Z0-9.-]", "Valeur rechercher"} ,-1, "La valeur du label lblXXX filtrée est égale à : #value#") Compatibilité : 6.11 Nom : TempInt Auteur : @pepite Description fonctionnelle : Permet le retour du relevé (et en TTS) de Température des différents modules d'une Station Météo Netatmo. Code : GEA.options.tempint = {name ="TempInt", math=true, optimize=true, getValue=function() return fibaro:getValue(164, "ui.lblTemp.value"):match("[0-9.]+") end, } GEA.options.tempext = {name="TempExt", math=true, optimize=true, getValue=function() return fibaro:getValue(147, "ui.lblTemp.value"):match("[0-9.%-]+") end, } GEA.options.tempinttts = {name ="TempIntTTS", optimmize=true, getValue=function() local temp = fibaro:getValue(164, "ui.lblTemp.value") return temp:match("[0-9.]+"):gsub("%.", "virgule").. "degrer" end, } GEA.options.tempexttts = {name ="TempExtTTS", optimize=true, getValue=function() local temp = fibaro:getValue(147, "ui.lblTemp.value") return temp:match("[0-9.%-]+"):gsub("%.", "virgule").. "degrer" end, } Exemples d'utilisations : -- Temperature Salon Netatmo-- GEA.add({ {"TempInt-",40},{"Time", "18:30"}}, 30, "Temperature intérieure : {TempInt} °C le {Date}", {"SMS", "Temperature du Salon #value# degrés le #date#"}, "Température Salon Netatmo 18h30") --=== Temp exter matin Station Netatmo ===== GEA.add( {{"Time", "07:00", "07:01"}, {"Time", "07:30", "07:31"}}, 30, "Température exterieure : {TempExt} °C", "Relevés Temperature extérieure" ) Compatibilité : 6.11 Modifié le 23 janvier 2019 par MAM78 1
schwinny Posté(e) le 22 janvier 2019 Signaler Posté(e) le 22 janvier 2019 (modifié) EDIT: Super idée MAM Modifié le 22 janvier 2019 par schwinny
pepite Posté(e) le 23 janvier 2019 Signaler Posté(e) le 23 janvier 2019 Voilà ;-) Nom : TempInt Auteur : @MAM78 Description fonctionnelle : Permet le retour du relevé (et en TTS) de Température des différents modules de ma Station Météo Netatmo. Code : GEA.options.tempint = {name ="TempInt.", math=true, optimize=true, getValue=function() return fibaro:getValue(164, "ui.lblTemp.value"):match("[0-9.]+") end, } GEA.options.tempext = {name="TempExt", math=true, optimize=true, getValue=function() return fibaro:getValue(147, "ui.lblTemp.value"):match("[0-9.%-]+") end, } GEA.options.tempinttts = {name ="TempIntTTS", optimmize=true, getValue=function() local temp = fibaro:getValue(164, "ui.lblTemp.value") return temp:match("[0-9.]+"):gsub("%.", "virgule").. "degrer" end, } GEA.options.tempexttts = {name ="TempExtTTS", optimize=true, getValue=function() local temp = fibaro:getValue(147, "ui.lblTemp.value") return temp:match("[0-9.%-]+"):gsub("%.", "virgule").. "degrer" end, } Exemples d'utilisations : -- Temperature Salon Netatmo-- GEA.add({ {"TempInt-",40},{"Time", "18:30"}}, 30, "Temperature intérieure : {TempInt} °C le {Date}", {"SMS", "Temperature du Salon #value# degrés le #date#"}, "Température Salon Netatmo 18h30") --=== Temp exter matin Station Netatmo ===== GEA.add( {{"Time", "07:00", "07:01"}, {"Time", "07:30", "07:31"}}, 30, "Température exterieure : {TempExt} °C", "Relevés Temperature extérieure" ) Compatibilité : 6.11 1
MAM78 Posté(e) le 23 janvier 2019 Auteur Signaler Posté(e) le 23 janvier 2019 Merci @pepite pour ta contribution que j'ai ajouté à la bibliothèque.
MAM78 Posté(e) le 23 janvier 2019 Auteur Signaler Posté(e) le 23 janvier 2019 (modifié) Petites précisions concernant ce que je vous propose ici : L'idée est de référencer des conditions/actions qui ne sont pas déjà réalisables au travers des fonctions déjà disponibles sous GEA. Je pense que les fonctions conditions/actions que vous créez pour une simplification d'écriture ou de lecture n'ont pas lieu d'être référencer dans la bibliothèque. Mais rien n'empêche évidement que vous les présentiez dans vos messages, mais elles ne seraient pas intégrées dans la bibliothèque. C'est évidement c'est un sujet ouvert à discussion vous en pensez quoi ? Modifié le 23 janvier 2019 par MAM78
Messages recommandés